#ifndef FACADE_DLG_HEADER
#define FACADE_DLG_HEADER

#include <ui_FacadeDlg.h>
#include <QMessageBox>

class ccGLWindow;
class ccHObject;

class BuildingContainer;
class FacadeContainer;
class FacadeDlg : public QDialog, public Ui::FacadeDlg
{
    Q_OBJECT
public:

    FacadeDlg(BuildingContainer* container, QWidget* parent=0); //Alignment* a,
	~FacadeDlg();

private slots:
	void populateFacadeList();
	//void loadSourceCloud();
	//void loadTargetCloud();
	void refineCells();
	void doubleClickFacade(QListWidgetItem*);
	void reconstruct();

	void drawCornerPoints();
	//void removeTgtPoint();
	//void removeSrcPoint();
	void exportGML();
	//void nPointAlign();
	void showDialog(QString s);
	void drawBinaryImage();
	void samplingDistance();
signals:
	//void tgtPointPicked(size_t id, float x,float y,float z);
	//void srcPointPicked(size_t id, float x,float y,float z);

public:



	//Viewers
	//boost::shared_ptr<pcl::visualization::PCLVisualizer> tgt_viewer;
	//boost::shared_ptr<pcl::visualization::PCLVisualizer> src_viewer;

private:

	BuildingContainer* _buildingContainer;
	//Alignment* alignment;
	//Point-Picking Callbacks
	//void tgt_pp_callback (const pcl::visualization::PointPickingEvent &event,void*viewer_void);
	//void src_pp_callback (const pcl::visualization::PointPickingEvent &event,void*viewer_void);

	FacadeContainer* getFacade(unsigned int id);
	//void populateListView(int);
};

#endif
